home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_08_06
/
8n06030a
< prev
next >
Wrap
Text File
|
1990-04-16
|
761b
|
59 lines
*****Listing 4*****
#include <stdio.h>
#include <stdlib.h>
#define SET 1
#define CLEAR 0
#define NUMELEM(a) (sizeof(a)/sizeof(a[0]))
void eh(void);
void cf0(void); /* cleanup functions */
void cf1(void);
void cf2(void);
void cf3(void);
struct status_flags {
unsigned char flag;
void (*pfun)(void);
} handler[] = {
{CLEAR, cf0},
{CLEAR, cf1},
{CLEAR, cf2},
{CLEAR, cf3}
};
main()
{
atexit(eh);
handler[1].flag = SET;
handler[3].flag = SET;
}
void eh(void)
{
int i;
for (i = 0; i < NUMELEM(handler); i++) {
if (handler[i].flag == SET)
(*handler[i].pfun)();
}
}
void cf0(void)
{
printf("Inside cf0\n");
}
...
void cf3(void)
{
printf("Inside cf3\n");
}
Inside cf1
Inside cf3